package main

import "fmt"

// 在第 6.6 节 我们看到了一个递归计算 Fibonacci 数值的方法。但是通过数组我们可以更快的计算出 Fibonacci 数。完成该方法并打印出前 50 个 Fibonacci 数字。

const LIM = 100

var list = new([LIM]uint64)

func fibonacci(n int) (res uint64) {
	if n <= 2 {
		res = 1
	} else if list[n-1] > 0 {
		res = list[n-1]
	} else {
		res = fibonacci(n-1) + fibonacci(n-2)
		list[n-1] = res
	}
	return
}

func main() {
	for i := 1; i <= LIM; i++ {
		fmt.Println(i, " fibonacci number is: ", fibonacci(i))
	}
}
